Non-volatile storage devices, such as flash memory devices, have enabled increased portability of data and software applications. For example, flash memory devices can enhance data storage density by storing multiple bits in each cell of the flash memory. To illustrate, Multi-Level Cell (MLC) flash memory devices provide increased storage density by storing 3 bits per cell, 4 bits per cell, or more. Electronic devices, such as mobile phones, typically use non-volatile storage devices, such as flash memory devices, for persistent storage of information, such as data and program code that is used by the electronic device. Advances in technology have resulted in increased storage capacity of non-volatile storage devices with reductions in storage device size and cost.
Data stored on a memory of a non-volatile storage device may include compressed data. Conventional lossless compression methods, such as a Lempel-Ziv compression method or other dictionary based compression methods, have relatively high complexity when implemented for high throughput applications. For example, to achieve a high throughput, a conventional lossless compression method may split uncompressed data into chunks and the chunks may be divided between multiple processing cores that compress the chunks concurrently. Dividing the uncompressed data into multiple chunks may reduce compression efficiency as compared to a low throughput implementation that compresses the data using a single processing core. Additionally, performing the conventional lossless compression method at the non-volatile storage device may increase a size (e.g., a silicon area) of a controller of the non-volatile storage device, power consumption, and a cost of producing the controller.